Sliding-window decoder with prolog-windows having flexibel sizes

ABSTRACT

Sliding-window decoders with processor-systems ( 1 ) for decoding streams of symbols run prolog deriving processes ( 23 ) for deriving initial parameters for prolog-windows, and run main deriving processes ( 24 ) for deriving main parameters for main-windows thereby using initial conditions defined by said initial parameters. By introducing defining processes ( 22 ) for defining the prolog-windows having a flexible number of symbols, a flexible size, dependently upon the needed quality of the initial condition, the prolog-window can be made larger/smaller (initial condition with higher/lower quality). As a result, the efficiency is improved, as a consequence of the average overlap between prolog-windows of a certain main-window and a neighboring main-window being reduced. Preferably, per main-window, the prolog-windows get increasing sizes. Based upon the insight of initial conditions needing to have flexible qualities, the basic idea introduces flexible sizes for prolog-windows. Sizes which grow per iteration make the sliding-window decoders even more advantageous.

The invention relates to a sliding-window decoder for decoding at leastone block of symbols and comprising a processor-system for processingmain-windows each comprising one or more symbols and for processingprolog-windows each comprising one or more symbols.

The invention also relates to a system comprising an encoder forencoding at least one block of symbols and comprising a sliding-windowdecoder,

-   -   and to a processor-system for use in a sliding-window decoder        for decoding at least one block of symbols,    -   and to a method for sliding-window decoding at least one block        of symbols by processing main-windows each comprising one or        more symbols and by processing prolog-windows each comprising        one or more symbols,    -   and to a processor program product to be run via a        processor-system for use in a sliding-window decoder for        decoding at least one block of symbols.

Such a sliding-window decoder forms for example part of a mobileterminal, with a base station or a network node for example comprisingthe encoder.

A prior art sliding-window decoder is known from U.S. 2001/0046269 A1,which discloses a sliding-window decoder for decoding at least one blockof symbols and comprising a processor-system as shown in its FIGS. 1 and2 comprising one or more processors, adder-trees, registers, MAX blocks,MAX registers, normalizers etc. as shown in its FIGS. 3, 4 and 5. Saidprocessor-system runs prolog deriving processes for deriving initialparameters for prolog-windows, and runs main deriving processes forderiving main parameters (for example α's and β's) for main-windowsthereby using initial conditions defined by said initial parameters (asdescribed in its paragraph 0014) for filling/setting the registers, withthese main-windows and prolog-windows being disclosed in its FIGS. 8 and9. Said main parameters are processed for generating data estimatevalues (for example extrinsic data or a posteriori data), which indicatethe most likely message symbols as encoded by an encoder and as sentfrom said encoder to said sliding-window decoder and their likelihoods.

The known sliding-window decoder is disadvantageous, inter alia, due tonot being efficient: this known sliding-window decoder has parallellizedforward-propagating processing (forward direction) andbackward-propagating processing (backward direction), with the overlapof each of the prolog-windows of the iterations made for a certainmain-window on the one hand and a neighboring main-window on the otherhand causing many calculations to be done twice (any overlap causescalculations to be done twice).

It is an object of the invention, inter alia, of providing asliding-window decoder which is more efficient.

It is a further object of the invention, inter alia, of providing asystem which is more efficient.

It is a yet further object of the invention, inter alia, of providing aprocessor-system which is more efficient.

It is also an object of the invention, inter alia, of providing a methodwhich is more efficient.

It is further also an object of the invention, inter alia, of providinga processor program product which is more efficient.

The sliding-window decoder according to the invention for decoding atleast one block of symbols comprises a processor-system for processingmain-windows each comprising one or more symbols and for processingprolog-windows each comprising one or more symbols, whichprocessor-system comprises

-   -   at least one prolog deriving process for deriving at least one        initial parameter for at least one prolog-window,    -   at least one main deriving process for deriving at least one        main parameter for at least one main-window thereby using at        least one initial condition defined by said at least one initial        parameter,    -   at least one generating process for generating at least one data        estimate value by processing said at least one main parameter,        and    -   at least one defining process for defining at least a first        prolog-window comprising a first number of symbols and at least        a second prolog-window comprising a second number of symbols,        which first number and second number are different from each        other and unequal to zero.

By introducing one or more defining processes for definingprolog-windows comprising a flexible number of symbols, in addition tothe deriving processes and the one or more generating processes,prolog-windows have been created which have got a flexible size.Dependently upon the needed quality of the initial condition, theprolog-window can be made larger (initial condition with higher quality)or smaller (initial condition with lower quality). As a result, theefficiency is improved, as a consequence of an average overlap beingreduced.

When the quality of the data estimate values is judged as being high forcertain iterations (for example due to little changes appearing in dataestimate values for these certain (subsequent) iterations), it isinteresting to use initial conditions having a high quality too(corresponding with prolog-windows having relatively large sizes andwith relatively large overlaps), and vice versa.

It should be observed that the term “sliding-window” is not to be lookedat too narrowly: in case of one processor doing all the work, themain-windows will be really sliding windows comprising neighboringmain-windows, with a main-window overlapping all prolog-windows of alliterations made for a neighboring main-window; but in case of severalprocessors cooperating, each processor may simultaneously process one ora series of main-windows. And, the term “data estimate value” is not tobe looked at too narrowly and may comprise for example a most likelyvalue per symbol (hard estimate) and/or one or more likelihoods for oneor more values per symbol (soft estimate) etc. Further, the term “dataestimate value” may comprise for example extrinsic data estimate valuesor data estimate values which could represent a decoded result (hard orsoft).

It should further be observed that the invention is not limited toparallellized forward-propagating processing (forward direction) andbackward-propagating processing (backward direction), the prolog-windowswith flexible sizes can also be used in sliding-window decoders solelyoperating in just one of said directions.

It should be noted that many alternatives exist for the terms“prolog-window” and “main-window”: a main-window is also known aswindow, with a prolog-window then being defined as learning phase,upwarming phase, overlap, prolog etc.

It should further be noted that, when processing in the forwarddirection, the main-window starting with the last symbol received (notpresent in case of a continuous stream of symbols) will not have aprolog-window; the next main-window, due to prolog-windows usually beingsmaller than main-windows, will have a prolog-window (per iteration).And, when processing in the backward direction, the main-window startingwith the first symbol received (not present in case of a continuousstream of symbols) will then not have a prolog-window; the nextmain-window, due to prolog-windows usually being smaller thanmain-windows, will have a prolog-window (per iteration).

A first embodiment of the sliding-window decoder according to theinvention is defined by claim 2.

This sliding-window decoder has a number of prolog-windows permain-window with growing, increasing sizes. As a result, a main-windowis iteratively processed based upon initial conditions having increasingqualities, and the sliding-window decoder operates with good efficiency(reduced average overlap). Said first, second and third iteration do notnecessarily correspond with the first, the second and the thirditeration, but correspond with three subsequent or non-subsequentiterations, with said second iteration chronologically following saidfirst iteration in time, and with said third iteration chronologicallyfollowing said second iteration in time.

A second embodiment of the system according to the invention is definedby claim 3.

This sliding-window decoder has a number of prolog-windows in subsequentiterations with the corresponding main-window being processediteratively based upon subsequent initial conditions having increasingqualities. As a result, the sizes of the prolog-windows and thequalities of the initial conditions vary fluently, which improves theoperating of said sliding-window decoder.

A third embodiment of the sliding-window decoder according to theinvention is defined by claim 4.

This sliding-window decoder has a main-window processed iterativelybased upon initial conditions having increasing qualities, with astarting prolog-window having a minimum size and therefore being basedupon an initial condition having a minimum quality, and with a finishingprolog-window having a maximum size and therefore being based upon aninitial condition having a maximum quality, and with an intermediateprolog-window having an intermediate size and therefore being based uponan initial condition having an intermediate quality. As a result, thesizes of the prolog-windows and the qualities of the initial conditionscan be varied stepwise.

A fourth embodiment of the sliding-window decoder according to theinvention is defined by claim 5.

Especially for sliding-window decoders based upon Maximum-A-Posterioriand/or Viterbi decoding processes, the flexible sizes of theprolog-windows and the flexible qualities of the initial conditions willbring great improvements.

The system according to the invention comprises an encoder for encodingat least one block of symbols and comprising a sliding-window decoder asdefined by claim 1, wherein said encoder is a turbo encoder and/orwherein said sliding-window decoder is a turbo sliding-window decoder.

Especially for turbo encoding and/or turbo decoding, the flexible sizesof the prolog-windows and the flexible qualities of the initialconditions will bring great improvements.

Embodiments of the system according to the invention and of theprocessor-system according to the invention and of the method accordingto the invention and of the processor program product according to theinvention correspond with the embodiments of the sliding-window decoderaccording to the invention.

The invention is based upon an insight, inter alia, that the initialconditions should have flexible qualities for improving the efficiencyof the sliding-window decoder, and is based upon a basic idea, interalia, that the size of the prolog-windows can be made flexible.

The invention solves the problem, inter alia, of providing a moreefficient sliding-window decoder, and is advantageous, inter alia, inthat, at increased efficiency, the performance of the sliding-windowdecoder has not decreased, and is further advantageous, inter alia, inthat main-windows can now be made smaller, thereby allowing moreparallel processes to be performed simultaneously.

These and other aspects of the invention will be apparent from andelucidated with reference to the embodiments(s) described hereinafter.

FIG. 1 illustrates in block diagram form a sliding-window decoderaccording to the invention comprising a processor-system according tothe invention, and

FIG. 2 illustrates in timing diagram form main-windows and for onemain-window the prolog-windows as generated by a processor-systemaccording to the invention.

The sliding-window decoder shown in FIG. 1 comprises a processor-systemaccording to the invention 1 having a controller 2 comprising one ormore processors and a performer 3 comprising for example a β-block 31, aβ-RAM 32, an α-block 33 and an extrinsic-block 34. As shown detailedlyin U.S. 2001/0046269 A1, β-block 31 receives from controller 2 forexample systematic data, parity data and a priori data and generates forexample a β-vector which is supplied via β-RAM 32 to extrinsic-block 34,and α-block 33 receives from controller 2 for example systematic data,parity data and a priori data (but in reverse order compared to theβ-situation) and generates for example an α-vector which is supplied toextrinsic-block 34. β-block 31 and α-block 33 and extrinsic-block 34comprise for example adder-trees, registers, MAX blocks, MAX registers,normalizers etc.

As described detailedly in U.S. 2001/0046269 A1, in β-block 31 andα-block 33, said registers are set to initial conditions, theadder-trees sum the systematic data, parity data and a priori dataaccording to a trellis used in the encoder, and results are stored insaid registers. During a next stage, results from the address-trees aresupplied to the MAX blocks and stored in the MAX registers. Theunnormalized outputs are normalized by the normalizers etc.

According to the sliding-window approach, incoming data like an N-sizeddata block or a continuous stream of data is divided into smaller blockscalled main-windows. These main-windows are decoded individually fromeach other. Due to initial conditions not being known for eachmain-window, prolog-windows (for the β-vectors and the α-vectors) arebeing used for getting good initial conditions. By starting the updateof the α-vector at a point sufficiently inside the previous main-windowand starting the update of the β-vector at a point sufficiently insidethe next main-window, the decoder can forget that it has not started atthe beginning or at the end of the stream of data and converge before itbegins operating on the actual data in the main-windows.

The generation processes for the β-vectors and the α-vectors are dividedinto multiple stages, which stages are within iteration loops realizedthrough feedback paths between said adder-trees, registers, MAX blocks,MAX registers, normalizers etc.

It should be noted that many alternatives exist for the terms“prolog-window” and “main-window”: a main-window is also known aswindow, with a prolog-window then being defined as learning phase,upwarming phase, overlap, prolog etc.

Controller 2 comprises a controlling process 21 for controlling otherprocesses like for example a prolog deriving process 23 for derivinginitial parameters for prolog-windows, a main deriving process 24 forderiving main parameters for main-windows thereby using initialconditions defined by initial parameters, a generating process 25 forgenerating data estimate values by processing said main parameters, anda defining process 22 for defining at least some of said prolog-windowshaving a flexible number of symbols.

As will be clear in view of the description of performer 3, at leastparts of at least prolog deriving process 23 and main deriving process24 and generating process 25 will take place in performer 3, butcontrolled by controlling process 21. About prolog deriving process 23,according to the decoder described in U.S. 2001/0046269 A1, the size ofthe prolog-window (the number of symbols in said prolog-window) isfixed.

According to the invention, as disclosed in FIG. 2, with λ for examplebeing α or β and λ₀ corresponding with a main-window+prolog-window witha minimum size and λ₁ corresponding with a main-window+prolog-windowwith a one but smallest size etc. and λ_(K-1) corresponding with amain-window+prolog-window with a maximum size, defining process 22 fordefining at least some of said prolog-windows having a flexible numberof symbols has been introduced. Dependently upon the needed quality ofthe initial conditions, the prolog-windows can be made larger (higherquality initial condition) or smaller (lower quality initial condition).As a result, the efficiency of the decoder has been improved, as aconsequence of an overlap between the prolog-window for a certainmain-window and the neighboring main-window (the next main-window forβ-vectors; the previous main-window for α-vectors) now being reduced(any one of these overlaps cause calculations to be done twice).

When the quality of the data estimate values is judged as being high forcertain iterations, it is interesting to use initial conditions having ahigh quality too, and vice versa. To be able to detect the qualityrequired for said initial conditions, controller 2 may be provided witha detecting process for detecting said converging and/or said systematicdata, parity data and/or a priori data, and/or the development of theα-vectors and the β-vectors etc. More particularly, said detectingprocess may detect for example changes appearing in data estimate valuesfor these certain (subsequent) iterations etc.

Preferably, a number of prolog-windows per main-window get growing,increasing sizes. As a result, a main-window is iteratively processedbased upon initial conditions having increasing qualities, and thesliding-window decoder operates with good efficiency (reduced averageoverlap). Said first, second and third iteration do not necessarilycorrespond with the first, the second and the third iteration, butcorrespond with three subsequent or non-subsequent iterations, with saidsecond iteration chronologically following said first iteration in time,and with said third iteration chronologically following said seconditeration in time (at least sometimes, for example for lack of knowledgeof the quality of the data estimate values, per main-window, initialconditions during earlier iterations are of less importance that initialconditions during later iterations).

By giving a number of prolog-windows in subsequent iterations increasingsizes, the corresponding main-window is processed iteratively based uponsubsequent initial conditions having increasing qualities. As a result,the sizes of the prolog-windows and the qualities of the initialconditions vary fluently, which improves the operating of saidsliding-window decoder.

By introducing a main-window processed iteratively based upon initialconditions having increasing qualities, with a starting prolog-windowhaving a minimum size and therefore being based upon an initialcondition having a minimum quality, and with a finishing prolog-windowhaving a maximum size and therefore being based upon an initialcondition having a maximum quality, and with an intermediateprolog-window having an intermediate size and therefore being based uponan initial condition having an intermediate quality, as a result, thesizes of the prolog-windows and the qualities of the initial conditionscan be varied stepwise.

It should be noted that, when processing in the forward direction, themain-window starting with the last symbol received (not present in caseof a continuous stream of symbols) will not have a prolog-window; thenext main-window, due to prolog-windows usually being smaller thanmain-windows, will have a prolog-window (per iteration). And, whenprocessing in the backward direction, the main-window starting with thefirst symbol received (not present in case of a continuous stream ofsymbols) will then not have a prolog-window; the next main-window, dueto prolog-windows usually being smaller than main-windows, will have aprolog-window (per iteration).

The expression “for” in for example “for deriving” and “for defining”etc. does not exclude that other functions are performed as well,simultaneously or not. The expressions “X coupled to Y” and “a couplingbetween X and Y” and “coupling/couples X and Y” etc. do not exclude thatan element Z is in between X and Y. The expressions “P comprises Q” and“P comprising Q” etc. do not exclude that an element R iscomprises/included as well. The terms “a” and “an” do not exclude thepossible presence of one or more pluralities. Symbols can be bits, orcan have more than two values.

The invention is based upon an insight, inter alia, that the initialconditions should have flexible qualities for improving the efficiencyof the sliding-window decoder, and is based upon a basic idea, interalia, that the size of the prolog-windows can be made flexible.

The invention solves the problem, inter alia, of providing a moreefficient sliding-window decoder, and is advantageous, inter alia, inthat, at increased efficiency, the performance of the sliding-windowdecoder has not decreased, and is further advantageous, inter alia, inthat main-windows can now be made smaller, thereby allowing moreparallel processes to be performed simultaneously.

1. A sliding-window decoder for decoding at least one block of symbolsand comprising a processor-system for processing main-windows eachcomprising one or more symbols and for processing prolog-windows eachcomprising one or more symbols, which processor-system comprises: atleast one prolog deriving process for deriving at least one initialparameter for at least one prolog-window, at least one main derivingprocess for deriving at least one main parameter for at least onemain-window thereby using at least one initial condition defined by saidat least one initial parameter, and at least one generating process forgenerating at least one data estimate value by processing said at leastone main parameter, wherein said processor-system comprises: at leastone defining process for defining at least a first prolog-windowcomprising a first number of symbols and at least a second prolog-windowcomprising a second number of symbols, which first number and secondnumber are different from each other and unequal to zero.
 2. Thesliding-window decoder according to claim 1, wherein said definingprocess further defines at least a third prolog-window comprising athird number of symbols, with said first, second and thirdprolog-windows neighboring the same main-window in a first, second andthird iteration, and with said first number being smaller than saidsecond number and with said second number being smaller than said thirdnumber.
 3. The sliding-window decoder according to claim 2, wherein saidfirst, second and third prolog-windows are prolog-windows in subsequentiterations in a forward/backward direction with said first, second andthird prolog-windows being situated before said main-window in theforward/backward direction.
 4. The sliding-window decoder according toclaim 2, wherein said first number has got a minimum value and saidthird number has got a maximum value and said second number has got anintermediate value.
 5. The sliding-window decoder according to claim 5,wherein said sliding-window decoder is Maximum-A-Posteriori-based and/orViterbi-based.
 6. A system comprising an encoder for encoding at leastone block of symbols and comprising a sliding-window decoder as definedby claim 1, wherein said encoder is a turbo encoder and/or wherein saidsliding-window decoder is a turbo sliding-window decoder.
 7. Aprocessor-system for use in a sliding-window decoder for decoding atleast one block of symbols and comprising said processor-system forprocessing main-windows each comprising one or more symbols and forprocessing prolog-windows each comprising one or more symbols, whichprocessor-system comprises at least one prolog deriving process forderiving at least one initial parameter for at least one prolog-window,and at least one main deriving process for deriving at least one mainparameter for at least one main-window thereby using at least oneinitial condition defined by said at least one initial parameter, andwherein said processor-system comprises: at least one defining processfor defining at least a first prolog-window comprising a first number ofsymbols and at least a second prolog-window comprising a second numberof symbols, which first number and second number are different from eachother and unequal to zero.
 8. The processor-system according to claim 7,wherein said defining process further defines at least a thirdprolog-window comprising a third number of symbols, with said first,second and third prolog-windows neighboring the same main-window in afirst, second and third iteration, and with said first number beingsmaller than said second number and with said second number beingsmaller than said third number.
 9. A method for sliding-window decodingat least one block of symbols by processing main-windows each comprisingone or more symbols and by processing prolog-windows each comprising oneor more symbols, which method comprises the steps of: deriving, via atleast one prolog deriving process, at least one initial parameter for atleast one prolog-window, deriving, via at least one main derivingprocess, at least one main parameter for at least one main-windowthereby using at least one initial condition defined by said at leastone initial parameter, and generating, via at least one generatingprocess, at least one data estimate value by processing said at leastone main parameter, wherein said method comprises the step of: defining,via at least one defining process, at least a first prolog-windowcomprising a first number of symbols and at least a second prolog-windowcomprising a second number of symbols, which first number and secondnumber are different from each other and unequal to zero.
 10. Aprocessor program product to be run via a processor-system for use in asliding-window decoder for decoding at least one block of symbols andcomprising said processor-system for processing main-windows eachcomprising one or more symbols and for processing prolog-windows eachcomprising one or more symbols, which processor program productcomprises at least one prolog deriving function for deriving at leastone initial parameter for at least one prolog-window, and at least onemain deriving function for deriving at least one main parameter for atleast one main-window thereby using at least one initial conditiondefined by said at least one initial parameter, wherein said processorprogram product comprises: at least one defining function for definingat least a first prolog-window comprising a first number of symbols andat least a second prolog-window comprising a second number of symbols,which first number and second number are different from each other andunequal to zero.